package leecode

func removeDuplicateNodes(head *ListNode) *ListNode {
	hashMap := make(map[int]bool)
	//创建一个虚拟头节点
	dummyHead := &ListNode{}
	dummyHead.Next = head
	cur := dummyHead
	for cur.Next != nil {
		if hashMap[cur.Next.Val] {
			// 如果下一个节点的值在哈希表中已经存在，说明是重复节点，应该将其删除
			cur.Next = cur.Next.Next
		} else {
			// 如果下一个节点的值在哈希表中不存在，将其加入哈希表
			hashMap[cur.Next.Val] = true
			cur = cur.Next
		}
	}
	return dummyHead.Next
}
